home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
TP120692.ARJ
/
12-06-92.TPC
Wrap
Text File
|
1992-12-06
|
52KB
|
1,493 lines
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 11:20:41
From Trevor Carlsen
To Scott Munger
Subject 2 things
SM> Program read_Record;
SM> Type
SM> Myrec = Record
SM> Firstname : String[36];
SM> Lastname : String[32];
SM> SSN : String[9];
SM> Unused : integer;
SM> end;
SM> ... want to do is search for the record lastname and display
SM> it and thats all. I want to start making utils for my bbs
SM> but without being able to read the records efficiently
SM> doesnt help. Please help with source. The file can be
SM> 'file.dat'.
Firstly in the above example Lastname is not a record. It is one of the fields
in a record of type Myrec. I point out this seemingly trivial point as understan
ing that point is fundamental to understanding how the routines you want work.
The following little program will read and display every record in your file
"file.dat". Then I include a second little program which will also change
the first letter of the LastName variable in the 11th record to upper case.
I include that merely to demonstrate how to manipulate typed files. No error
handling is used (as it must be in a real-life program) and the routines are
untested.
First Demo
Type
Myrec = Record
Firstname : String[36];
Lastname : String[32];
SSN : String[9];
Unused : integer;
end;
var
f : file of MyRec;
UserData : MyRec;
begin
assign(f,'file.dat');
reset(f);
while not eof(f) do begin
read(f,UserData);
writeln(UserData.LastName);
end;
close(f);
end.
Second Demo
Type
Myrec = Record
Firstname : String[36];
Lastname : String[32];
SSN : String[9];
Unused : integer;
end;
var
f : file of MyRec;
UserData : MyRec;
RecNo : longint;
procedure ReadRec(var R: MyRec; numb: longint);
begin
seek(f,numb);
read(f,R);
end;
procedure WriteRec(R: MyRec; numb: longint);
begin
seek(f,numb);
write(f,R);
end;
begin
assign(f,'file.dat');
reset(f);
RecNo := 0;
{ To change record number 10 }
ReadRec(UserData,10);
UserData.LastName[1] := Upcase(UserData.LastName[1]);
Writerec(UserData,10);
close(f);
end.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:29
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 11:20:14
From Trevor Carlsen
To Robert Minneman
Subject Telegard Source
RM> Dude! that's what *I* said, and I wrote a message back to
RM> this turkey (as well as someone else in this echo) but Mr.
RM> Sorber is talking out the side of his face, he hasn't proved
RM> squat about his claims, he just ignores any posts to him....
There is a very good reason why Sorber is not answering your posts to him
- he has been warned by me (and by his sysop) that his access to the echo
is at risk in the event of any further flames or off-topic messages from him
in the echo. He has obviously has enough good sense to realise that I don't
make such threats in jest.
You have also been warned, both by netmail and here in the echo, on this but
in contrast to Sorber have apparently chosen to ignore these warnings, and
so this is a final public warning to you. The NEXT off-topic message, or message
that should have been netmailed, from you in this echo will result in a request
to your sysop for your access to this echo to be reduced to read-only. Failing
that, the feed to your node will be cut.
If you wish to reply to this message do so ONLY BY NETMAIL.
Moderator.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:29
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 11:19:54
From Trevor Carlsen
To All
Subject "ECHOCOP" netmail
By now many of you will have realised that I am running new software on my
personal system. (No.. it will NOT be made available publicly or to other
moderators as yet.)
I have modified my off-line reader to enable me to mark messages and keep
statistics and details of those that do not conform to the regularly published
echo guidelines. On exit the reader automatically produces netmail messages
to those concerned requesting that they mend their ways. (Some 50 or so messages
have been despatched in this way over the past 25 days.)
The end result for me is a very much easier way to maintain moderation of
the echo and thus free up some valuable time. The down side is that some readers
who perhaps were barely off-topic or whose "transgression" may have been ignored
in the past because of its trivial nature may now be reminded of it without
getting a quoted detail of just what message is being picked upon and they
may have difficulty remembering just what it may have been.
If you fall into that category please bear with me, I am working on that aspect
of it. In the mean time most recipients of automatically generated ECHOCOP
messages will fully deserve their messages. My aim is that borderline cases
will not get a message until a certain number is reached.
Comments (and there have already been several - all favourable or semi-favourabl
) are welcome. Please confine them to netmail ONLY.
Moderator.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:29
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 11:29:39
From Trevor Carlsen
To All
Subject 30/11/92 Contest
As promised I shall be making my "entry" available to all today in binary
form only. However as my copy of BP7 has not arrived as Borland faithfully
promised me three weeks ago, it will not be the version that is finally used
although it will represent (for those interested) a good reference point.
The final version will be compiled as soon as I get my BP7 and made available
then. It will incorporate only changes necessary for it to be recompiled so
I anticipate that the differences is speed for benchmarking purposes will
not be all that great.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:29
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 17:09:42
From Trevor Carlsen
To Sysop and All
Subject Guidelines for the Pascal echo.
Would all sysops please ensure that a copy of these guidelines is available to
all users of the Pascal echo. It suggested that they be made a protected
message to ensure that normal message area housekeeping does not not result
in them being deleted. I try to re-post these guidelines on the first day
of every month.
GUIDELINES FOR THE PASCAL ECHO
The Pascal echo is an internationally distributed FidoNet echo devoted to
the discussion and promotion of the Pascal programming language in all its
variations.
MODERATOR.
The current moderator is Trevor Carlsen. He can be reached by
Netmail at 3:690/644 or by normal postage by writing to -
Trevor J Carlsen
Post Office Box 568
Port Hedland Western Australia 6721
Phone (voice) +61 91 73-2026 (0001 UTS = 0801 Local)
(data) +61 91 73-2930
GUIDELINES.
1. Leave moderation to the moderator. Self appointed "echo policemen"
only waste echo space and create ill-feeling.
2. NO FLAMING. If you feel that you have been insulted in some way by
somebody, you have three options.
(a) Complain by netmail to the person concerned.
(b) Bring the matter to the moderator's notice - again by netmail.
(c) Ignore it. (the preferred option!)
3. Person-person messages that are not of general interest to other
users are STRICTLY not permitted. Netmail these types of messages.
4. When replying to messages try and do so "off-line" and quote some of
the message being replied to. However don't go overboard with
quoting. Quote just enough to enable the context of the reply to be
fully understood and in particular DO NOT INCLUDE PARTS OF THE TEAR
AND ORIGIN LINES.
5. When replying to questions with code examples, test them where
possible by compiling and running them (or state that you have not
done this). If possible always quote manual references, text
references etc.
6. If replying to a question where you are disagreeing with the other
person's code or statement/s, support your viewpoint with working
code examples or valid text references. This will be more productive
than unsupported statements. If you are not prepared to do this then
don't reply in the first place!
7. Do not ENTER or REPLY TO off-topic messages. The subject matter is
Pascal. Discussions on religion, politics, copyright, other
languages and personal messages are OFF-TOPIC. Any subject that is
illegal or undesirable in a responsible conference - eg discussion or
tips on producing viruses or how to illegally obtain access to
information that the user is unauthorised to obtain, is off-topic.
Sometimes messages from other conferences become linked into another
conference due to faulty software. Replying to, or commenting on, such
messages is off-topic.
The main point is to use common sense. Some light hearted banter can
relieve the formality and brighten up ones day but do not carry this to
the length where it becomes an extended thread. The object of the echo
is to help, get help and enjoy communicating with like-minded people.
8. No "thank-you" or "no content" or "rubbish" messages. Sysops spend a
great deal of time and money to enable the distribution of echoes
such as this. Please respect this and avoid messages such as "Thank
you. Just what I needed" or "I agree" etc. By observing this
etiquette you will be helping to ensure greater participation in the
future. If you miss a message or code for some reason, make your
own private arrangements to get it. Repeated postings of code are
expensive and unnecessary.
9. All messages are to be in the English language and must be in PLAIN
TEXT. No encryption of any kind is permissable as this is in direct
contravention of FidoNet policy. As the aim of the conference is to
help, discuss and demonstrate the Pascal language, no .OBJ, .EXE or
.COM files of any description are permitted REGARDLESS of how they
be constructed. The echo is NOT to be regarded as a file transfer or
exchange channel.
10. Limited, low key, on-topic advertising is permitted, provided that it
is authorised by the sysop of the originating BBS and by the
Moderator BEFORE it is posted here.
11. When seeking assistance -
a) If Turbo Pascal is your language, place the cursor on the key
word and call the on-line help (Ctrl-F1 in the IDE) to see if
the answer may be there.
b) Double check the manual to see if the answer is there.
c) When writing the message include enough code to allow would-be
helpers to have a chance to determine what the problem might be.
If possible condense the problem into a tiny working example and
post that.
d) This is a high volume echo so use a subject line in the message
that is likely to gain attention from the experts who are often
too busy to read every message. "Help wanted" or similar is a
good way to be ignored. Something like "Exec procedure not
working" is better.
e) Remember that a reply of "RTFM" is not considered or meant as an
insult. In fact it is considered a polite (in spite of the
connotations) way of reminding someone that the answer they seek
is in the manual.
f) Remember also that your reply may come from anyone, of possibly
unknown skill level. Don't be too upset if misled as it is
probably unintentional and will almost certainly be corrected by
another reader.
g) Many BBSs carry a file - FAQ.TXT (or similar) - which contains the
answers to frequently asked questions.
h) The PDN has a file TCSEL*.ARJ that contains many useful routines
that your moderator has posted in the echo over the years. This
file also contains a file A2FAPQ.TXT which answers many commonly
asked questions.
12. When offering advice or help -
a) Do so in a helpful, polite manner. Don't be condescending - not
everybody may have your experience or skills.
b) Refer to the page in the manual where the answer is if your
answer is "RTFM"!
13. Messages should comply with the FidoNet message requirements. Origin
lines should not exceed 79 characters, tear lines must not exceed 25
characters and messages should not contain extended "internet" style
signatures. No encrypted text is permitted. Messages must be <16K.
14. All code posted should be public domain if possible. No copyrighted
code may be posted unless the copyright owner included permission for
non-profit reproduction and use in the original code. Code posted
without copyright claim will be regarded as in the Public Domain.
15. Election of Moderator. Under a normal situation, if the moderator
wishes to step aside, s/he will appoint a new moderator taking into
account the wishes of the regular users where possible. In the event
of a moderator ceasing to participate in the echo for a period of
three months without prior notice being given of the absence, for
whatever reason, then the ZEC (1:1/201) will conduct, or nominate a
regular and senior echo participant to conduct, an election for a new
moderator.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:30
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 16:54:19
From Trevor Carlsen
To All
Subject 30/11/92 Contest
CONTEST
I am offering a cash prize of AUD100 (At this moment AUD1.00 = USD0.69) for
the person who submits the program which sorts a large file of variable length
mixed case strings in the least amount of time. If the winning program can
better the time a program I will write takes to do the job, I will double
the prize! The contest will be nul and void if less than 10 individuals enter
by the closing date of April 30, 1993.
In the next message I will post a short Q&D program (MAKESTR) that will create
the file to be sorted. Be warned ... this program takes about 10 minutes
to run on a fast 486. I tried it on an old 286 and gave up after an hour,
so be prepared for a long wait if you are on an 8088!! Also disk space is
needed as the file produced will be 17,504,847 bytes. The file consists solely
of string 3..30 characters in length in Turbo Pascal format. (length byte
at position zero). The file has no lines and no characters other than the
strings themselves and their length bytes.
PLEASE NOTE: The original program MAKESTR has been changed to produce strings
of mixed case. The sort must ignore case. I apologise for any
inconvenience this may have caused.
The data file is made up of 1,000,000 variable length mixed case strings.
You can consider this to be the maximum number of strings to be handled.
No string will be less than 3 characters and none will exceed 30 characters.
THE PROGRAM IS NOT TO CONTAIN ANY ASSEMBLER OR BASM CODE (except as may already
be part of the standard library supplied by Borland) - just pure TP using
standard Borland units and must be designed to run in STANDARD MEMORY - no
extended, expanded or video memory may be used for the sorting (except as
may be transparently used. eg your program has no control over its use). It
must be capable of being run on a stock standard 640K 8088 machine which has
no more than 30mbytes of free disk space after the creation of the original
data file.
No disk direct sector reads/writes may be used by the program.
The program is to update a progress longint variable named "progress" that
is located at absolute address $0040:$00f0 (the ICA area) at least once every
10 seconds. This can represent percentage completed or records sorted or whateve
you like, just as long as what the figure represents is indicated in the
documentation.
The winner will be determined by me by being compiled and tested on my machine
sorting the test file and will also be tested on a standard XT to ensure that
it can run on such a machine. However the winning time will be determined
SOLELY by a comparison made on my machine. Before a final "run-off" is performed
the hard drives will be defragmented and optimised to ensure a level playing
field.
I will be adding the Turbo Power TPTimer unit to it to enable accurate timing
to within 0.0001 seconds and a $1C ISR routine to enable me to track progress
via the progress variable. I do not want the submitted program to contain
code to do timing as this will be added by me. No other changes will be made
to the programs entered.
The code submitted must be compilable using TP6 or TP7 using standard Borland
units and must be adequately commented or documented.
The data file must be PHYSICALLY in sorted alphabetical sequence after the
program finishes and be in the same format as the file created by the program
MAKESTR. It must also an identical byte checksum to the file produced by my
program (unless you can demonstrate that the file produced by my program is
incorrect!!). The case of a string is to be ignored in the sort. eg bAM will
be before BAN but equal to BAM.
You may retain copyright on your code but any submission must be able to be
freely copied and used in anything except a commercial program.
Entries are NOT to be placed in the echo but should be forwarded to me by
normal mail, netmail or by crashing my node directly.
When I post the echo rules each month, I will repeat this message and give
the number of entries received for the month with the fastest program received
to that point plus any comments I feel appropriate.
The program I have written to act as the benchmark is now available from my
node as ENTRY.EXE (about 8K bytes) and as soon afterwards as possible from
PDN nodes. It has been PKLited using the commercial version of PKLite. The
source code will be released April 30, 1993.
Trevor Carlsen
PO Box 568
Port Hedland 6721
Western Australia
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:30
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 15:32:20
From Trevor Carlsen
To All
Subject 30/11/92 MAKESTR and CHECK
program makestr;
{ Written to produce the data file to be used in the contest. If you wish to
alter this to speed it up - no problems. Just make sure that the basic
algorithm is unchanged so that the resulting file is an exact copy of the
file produced by the code below.}
uses crt;
var
st : string;
len : byte absolute st;
f : file;
x,y : longint;
function MakeRndStr: string;
var x : byte;
t : string;
sa: array[0..255] of byte absolute t;
l : byte absolute t;
begin
l := 3 + random(28);
for x := 1 to l do
sa[x] := 65 + random(26) + (random(2) shl 5);
MakeRndStr := t;
end;
begin
Clrscr;
assign(f,'d:\temp\string.dat'); { Change this to your chosen file name }
rewrite(f,1);
writeln('Strings created X 1000');
for x := 0 to 999 do begin
gotoXY(1,2); write(x:3);
for y := 1 to 1000 do begin
st := MakeRndStr;
BlockWrite(f,st,succ(len));
end;
end;
close(f);
end.
{-------------------------------------------------------------------------}
Here is the $1c ISR that I will add (unless you wish to do that).
unit Check;
interface
var
progress : longint absolute $40:$f0;
tickCount : longint;
implementation
{ Everything is private to this unit }
uses dos;
const
line = 0; { Change as required for position of display on screen }
column = 72; { Top left corner is 0,0 }
ScreenPos = (line * 160) + (column * 2);
Colour = $1f; { White on Blue }
type
timestr = array[0..15] of char;
timeptr = ^timestr;
var
time : timeptr;
OldInt1c : pointer;
ExitSave : pointer;
procedure Long2Hex(var numb; var Hex: TimeStr);
const
HexChars : array[0..15] of char = '0123456789ABCDEF';
var
HA : array[0..3] of byte absolute numb;
begin
FillChar(hex,16,Colour);
Hex[0] := HexChars[HA[3] shr 4];
Hex[2] := HexChars[HA[3] and 15];
Hex[4] := HexChars[HA[2] shr 4];
Hex[6] := HexChars[HA[2] and 15];
Hex[8] := HexChars[HA[1] shr 4];
Hex[10] := HexChars[HA[1] and 15];
Hex[12] := HexChars[HA[0] shr 4];
Hex[14] := HexChars[HA[0] and 15];
end; { Long2Hex }
{$F+}
procedure Int1cISR; interrupt;
{ This will be called every clock tick by hardware interrupt $08 }
var
x : byte;
begin
asm cli end;
inc(tickcount);
if tickcount > 20 then { ticks to update the display } begin
tickcount := 0; { equality check and assignment faster than mod 9 }
{ The following statements are what actually display the on-screen time}
Long2Hex(progress,time^);
end; { if count = 20 }
asm
sti
pushf { push flags to set up for IRET }
call OldInt1c; { Call old ISR entry point }
end;
end; { Int1cISR }
procedure ClockExitProc;
{ This procedure is VERY important as you have hooked the timer interrupt }
{ and therefore if this is omitted when the unit is terminated your }
{ system will crash in an unpredictable and possibly damaging way. }
begin
ExitProc := ExitSave;
SetIntVec($1c,OldInt1c); { This "unhooks" the timer vector }
end;
{$F-}
procedure Initialise;
var
mode : byte absolute $40:$49;
begin
progress := 0;
if mode = 7 then { must be a mono adaptor }
time := ptr($b000,ScreenPos)
else { colour adaptor of some kind }
time := ptr($b800,ScreenPos);
FillChar(time^,sizeof(time^),Colour);
tickCount := $ff;
GetIntVec($1c,OldInt1c); { Get old timer vector and save it }
ExitSave := ExitProc; { Save old exit procedure }
ExitProc := @ClockExitProc; { Setup a new exit procedure }
SetIntVec($1c,@Int1cISR); { Hook the timer vector to the new procedure }
end; { Initialise }
begin
Initialise;
end.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:31
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 17:07:30
From Trevor Carlsen
To All
Subject PDN Information.
The following text is posted monthly as a service to, and in support of, the
PDNPASCL system. The information contain was received from Janis Kracht in
response to a request from me. I strongly recommend that if you have any
source code too long to post in one message ( >16K ) that you place it into
the PDN system.
Moderator.
===========================================================================
Programmers Distribution Network 11/14/92 Information File
Janis Kracht, International Coordinator, Programmer's Distribution Network
1:272/38
Information regarding releasing files into the the PDNPASCL (PDN Pascal) file
echo:
1. Files of interest to programmers may be hatched into the PDN. "Files" are
refered to as Units, Source code, include files, or Executables in the Pascal
language, for instance. I would also ask that the author (or authorized agent)p
ease make sure that the file being entered into the PDN be documented, and
functional. "CrippleWare" or "VaporWare" should not be submitted.
ONLY PUBLIC DOMAIN AND SHAREWARE SHOULD BE SUBMITTED.
Demonstration software submitted will be allowed only if the software is
able to be used in some fashion that will enable the end user to "Try before
you buy". An example in the Pascal language is a Unit with no source code
which allows an end user to see first hand the power of the library. Editors
that are designed around programming are encouraged to be submitted as well,
aslong as they meet the above criteria.
2. Any and all nodes may directly hatch submissions into the PDN.
Any Node that abuses this will be removed from the PDN. Files from authors
may also be dropped off at 1:272/38, or uploaded to my BBS with a file
description and a 'request to hatch' and I will hatch them.
3. No archive advertisments should be placed into the archive. The PDN is
notmeant to advertise a BBS, but to move files.
4. File which are hatched from my system will be converted to ARJ and will
be stamped with an ARJ security lock to insure file integrity.
Information File: PDNINFO.ARJ
File REQuestable from 1:272/38, complete
policy/link/application info for the Programmer's
Distribution Network membership.
BBS List : PDNBBS.LST
File REQusetable from 1:272/28, An
international list of PDN Member BBS's
which allow first time downloads, freq's, etc.
of PDN Areas.
If you would like to join the Programmer's Distribution Network, netmail me
at 1:272/38 and I will be glad to find you a feed 'close to home'.
Janis Kracht
IC Programmer's Distribution Network, 1:272/38
===================================================
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/02 09:56:31
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 17:29:23
From Dj Murdoch
To Richard Nelson
Subject Re: Borland Pascal?
RN> You use the Help|Files menu command to bring up a dialog
RN> box that lets you add or remove files. The IDE
RN> automatically merges the indexes of the help files, so you
RN> can do Ctrl-F1 searches on items in the help files you add.
No, the thing I missed was the help compiler. I don't see any way to create
my own .TPH files. Am I still missing something?
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:20
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 17:56:30
From Dj Murdoch
To Mathias Homann
Subject Re: Question about BP 7
MH> is it possible to install the Windows - IDE in another subdir than the
MH> DOS-IDE ???
The only restriction I can see is that the .TPL file has to be in the same
directory as the compiler. If you're compiling real mode DOS programs from
Windows sometimes and from DOS sometimes, you'll probably have to have two
copies of the library. It's not a big deal; you can take all the units out
and put them in your units directory if you're very short of space.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:20
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 17:59:28
From Dj Murdoch
To Bill Buchanan
Subject Re: TP 6.0 bug fix
BB> I recently downloaded the fix for TP 6.0 to fix the screw up on fast
BB> 386's (particularly the 40Mhz)...however I have an IDE drive and I
BB> noticed the fix used DEBUG. I was told that DEBUG will electronically
BB> crash an IDE drive. This means I won't be able to reformat, I will have
BB> to send it back to the factory. I heard this from a very reliable
BB> source and if this is true does anyone know where I can get another fix
BB> besides the one that uses DEBUG?
I've used DEBUG on a machine with an IDE drive with no ill effects. I think
it's true that DEBUG allows you to do things that can cause permanent damage
to your IDE drive; so does TP, for that matter.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:20
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 11-30-92 18:01:36
From Dj Murdoch
To Greg Vigneault
Subject Re: LONGINT SHIFT BUG
GV> Is this confirmed to not work on a 386DX? I tested Borland's
GV> assembly algorithm: it works fine on my 386SX, so I wonder if
GV> the problem only exists for '486 systems?
I've only tested it on a 486. The 386 programmer's manual says that the result
of "shrd ax,dx,cl" is undefined if cl>=16, but that doesn't mean that Intel
didn't fix it in some versions of the chip.
DM> cs:07A8 803E4C0002 cmp byte ptr [SYSTEM.TEST8086],02
GV> I don't have TP7, so can you (or someone) tell me what the
GV> SYSTEM.TEST8086 will be for the various CPU types ?
The manual says:
0 = 8086
1 = 80286
2 = 80386 or later
I'd guess that this means an 8088 is 0, but I don't know enough about the
test to tell you what it would say if presented with an 8018x or a NEC V20
or V30.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:20
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 07:37:10
From Trevor Carlsen
To Shelby Crane
Subject Waiting...
SC> Could someone post some example code of a program that will
SC> contine to update a object on the screen, such as a clock,
SC> but at the same time wait for a key press?
Find a PDN node near you and get TCSEL*.arj. It has an ISR demo in it that
will do what you want.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 07:57:24
From Trevor Carlsen
To Shelby Crane
Subject Hot Key...
SC> Does anyone have an example program of a small TSR or
SC> whatever that will, for example, print Hi on the screen when
SC> ever Alt-G is hit?
Look up the keep procedure in your on-line help. The example there will be
a good help. However the double @@ in the GetIntVec line must be changed
to just a single @.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 08:15:34
From Trevor Carlsen
To Aaron Marasco
Subject Fading routines...
AM> N SCRIPT.COM
AM> E 0100 E9 34 01 0D 0A 44 45 42 55 47 53 43 52 20 31 2E
Debug scripts are not permitted in this echo. Send them privately on your
own dollar. UUENCODEd messages are also not permitted here. If you want
a binary file get it privately, the echo resources are not to be used for
that purpose.
Moderator.
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 09:43:57
From Trevor Carlsen
To Jeff Jernegan
Subject Writing new date on file
JJ> Can anyone suggest how to change the date on a file in TP? I
JJ> need to change the filedates of a large number of small text
JJ> filesto the
Check out the SetFTime procedure in your manual.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 10:00:34
From Trevor Carlsen
To Bill Yohman
Subject self config
BY> I know that youy can use binobj to add a file to a pascal
BY> exe. What I would like to do is make a program that saves
BY> its config inside of the exe. How would I do this?
An example of how to do this is included in the file TCSEL*.ARJ available
on PDN nodes.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 10:13:18
From Trevor Carlsen
To Gregory P. Smith
Subject Reset and ReWrite TP6.0 Style?
TC> Seek cannot be used on text files. Append can only be used
TC> on text files.
GS> Hmm.. Darn. :) This does present a problem then. I've
GS> never dealt with rewriting a record in the middle of a file,
GS> but how would you have to do it? Does it require playing
GS> with the FileMode variable and using reset to open it or am
GS> I just overlooking something simple?
Open it as a typed file. This automatically allows you to read or write anywhere
within the file to the record of your choosing. eg.
type
YourRecord = record
FirstName,
LastName : string[20]
age : word;
end;
var
f : file of YourRecord;
data : YourRecord;
RecNo : longint;
begin
assign(f,'YourFile.dat');
reset(f); { opens for reading or writing }
seek(f,10); { seeks to the 11th record }
read(f,data); { Places the 11th record into the record "data" }
data.FirstName := 'Gregory'; { changes a field in that record }
seek(f,10); { seeks to the 11th record again so we can write to it }
{ This is necessary because when we read the record the }
{ file pointer is automatically advanced by one record and }
{ therefore we have to seek back before doing the write }
{ otherwise we would be overwriting the 12th record }
write(f,data);
close(f);
end.
Untested.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 17:26:03
From Trevor Carlsen
To All
Subject TP7/BP7 shr/shl bug
The shr/shl bug reported earlier this week applies to any shift exceeding $10.
Here is a patch supplied to me by Borland Australia. It involves changing
the LONG.ASM file in the RTL and reassembling it.
; Longint shift right
; In DX:AX = Value
; CX = Shift count
; Out DX:AX = Result
LongShr:
CMP Test8086,2
JB @@1
.386
; SHRD AX,DX,CL
; SHR DX,CL
;
; Bug Fix for 32 bit SHR > 16 bits
; R Morris & J Downs Borland International (Sydney Australia)
SHL EAX, 16
MOV AX, DX
ROR EAX, 16
SHR EAX, CL
ROR EAX, 16
MOV DX, AX
SHR EAX, 16
RETF
And then for the shl....
And then for the shl.....
LongShl:
CMP Test8086,2
JB @@1
.386
; SHLD DX,AX,CL
; SHL AX,CL
;
; Bug Fix for 32 bit SHR > 16 bits
; R Morris & J Downs Borland International (Sydney Australia)
SHL EAX, 16
MOV AX, DX
ROR EAX, 16
SHL EAX, CL
ROR EAX, 16
MOV DX, AX
SHR EAX, 16
RETF
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/03 08:05:36
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 08:21:28
From Dj Murdoch
To Mark May
Subject Re: Array of Pointers
DM> One advantage: if every now and then you have one that's 100
DM> bytes long, it won't cause any trouble. If people who wrote
DM> message editors used NewStr, we wouldn't have all these brain
DM> damaged programs that truncate subject lines to 30 or
MM> 40 characters :-).
MM> Actually this usually isn't the cause of that problem.
MM> Some of the offline mail formats specify a limit on the
MM> length of the subject, so the message editor programs
MM> don't have a choice if they want to remain compatible.
Okay, so it's not the editor that's brain-damaged, it's the offline reader.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/04 20:13:23
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 08:24:51
From Dj Murdoch
To Reinhardt Mueller
Subject Re: Borland Pascal 7.0!!!
RM> If you use the car analogy, it won't work. It's like the old and
RM> new car having the same title. If this were possible, you couldn't
RM> sell/give-away one without doing same with the other. If the cars go,
RM> the title goes with them. If it were legal for two cars to
RM> have one title, you'd have to keep both -- you can't separate them.
RM> Borland treats those various versions like the same copy. All the
RM> versions of a given program are on the same license.
RM> I have copies of TP3, TP4, TP5, TP5.5, and soon BP7.0
RM> I bought TP3 new. I upgraded to TP4 and all of the rest.
RM> Meaning: I can't legally sell any lest I sell ALL my copies of TP!
That's total nonsense. I've bought all of those (most as upgrades), and in
no case did Borland ever place any condition on what I did with old copies.
If Borland doesn't make it a condition of sale at the time of sale, they
can't impose it later.
Please quote whatever it was in the Borland license that gave you this mistaken
impression.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/04 20:13:23
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 08:35:15
From Dj Murdoch
To Douglas Delonay
Subject Re: BP7 protected mode
DD> According to the manuals and such the run time manager
DD> is supposed to grab ALL available memory and allocate it
DD> to the program as heap space.
I couldn't find that statement, but just before the discussion of the RTM
environment variable there are a few vague statements that suggest only extended
memory will be used for the heap; you need GlobalDOSAlloc to get low ram.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/04 20:13:23
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 20:07:18
From Dj Murdoch
To Joe Jared
Subject Re: .OVR files...Assembler...when?
JJ> It's generally not a workable option to overlay
JJ> assembler source, and even if it was possible, is not
JJ> practical.
What difference does it make which source language you use? As long as you
obey the convention of using far calls and setting up a proper stack frame,
the TP overlay manager (and I'd guess any other one) doesn't care that the
code is assembler rather than Pascal that's being overlaid.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/04 20:13:23
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 21:13:55
From Dj Murdoch
To All
Subject BP 7 Outline bug
The DisposeNode procedure in the Outline unit neglects to dispose of the Text
string allocated by NewNode. This means that disposing of a POutline object
leaves all the strings sitting in memory. It's also got redundant tests to
avoid disposing of a nil pointer.
It should be fixed as follows. Change from:
procedure DisposeNode(Node: PNode);
begin
if Node <> nil then
with Node^ do
begin
if ChildList <> nil then DisposeNode(ChildList);
if Next <> nil then DisposeNode(Next);
end;
Dispose(Node);
to:
procedure DisposeNode(Node: PNode);
begin
if Node <> nil then
with Node^ do
begin
DisposeNode(ChildList);
DisposeNode(Next);
DisposeStr(Text);
Dispose(Node);
end;
end;
This is my fix, not a Borland fix.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/04 20:13:23
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-02-92 08:17:55
From Dj Murdoch
To Greg Vigneault
Subject Re: LONGINT SHIFT BUG
GV> From a 1986 copy of Intel's "80386 Programmer's Reference Manual,"
GV> re the SHLD and SHRD commands ...
GV> "The count operand is provided by either an immediate byte or the
GV> contents of the CL register. These operands are taken MODULO 32
GV> to provide a number between 0 and 31 by which to shift. Because
GV> the bits to shift are provided by the specified register, the
GV> operation is useful for multi-precision shifts (64 bits or more)."
The restriction isn't in the text, it's in the pseudocode description of what
the instruction does:
IF ShiftAmt = 0
THEN no operation
ELSE
IF ShiftAmt >= OperandSize
THEN (* Bad parameters *)
r/m <- UNDEFINED
CF, OF, SF, ZF, AF, PF <- UNDEFINED
ELSE ...
The problem is that OperandSize is 16 when the RTL uses this instruction.
This pseudocode is the same in the 386 and 486 manuals; I don't think there's
any difference in what the two chips are supposed to do here. Whatever happens
in the UNDEFINED sections may differ, of course.
GV> The exact same words are found in the 1989 edition of Intel's "386
GV> SX Microprocessor Programmer's Reference Manual." No mention of
GV> lower limits on register CL.
It's not a lower limit on CL, but an upper limit on CL mod 32.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:15:56
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-02-92 08:24:00
From Dj Murdoch
To Greg Vigneault
Subject Re: LONGINT SHIFT BUG
GV> from TP users. At the risk of being flamed for posting a 'binary'
GV> file in this echo (just 22 lines,TeeCee)... the following TP code
GV> generates SHR31.COM.
GV> PROGRAM A {DO.PAS}; VAR G:File; CONST V:ARRAY [ 1..387 ] OF BYTE =(
GV> 233,216,0,10,67,80,85,58,32,36,10,110,111,116,32,51,50,45,98,105,116,
..
I think you really missed the point here. The reason you shouldn't post binarie
is because they're completely unreadable to most people. Why didn't you
just post the assembler source for your program? I suspect from your descriptio
that this program tests the wrong thing, but it's way too much work to download
compile to create a .COM, disassemble the .COM to figure out what you really
did. Sorry, I just don't have the time.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:15:56
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-02-92 08:28:25
From Dj Murdoch
To Andrew Evers
Subject Re: Borland Pascal 7.0 and XT's
AE> Does Borland Pascal 7.0 still include the TP7 IDE's and
AE> compilers, can I still use parts of BP7 eg. DOS real mode
AE> compiler on an XT?
Yes, but why? TP 7 is a lot cheaper.
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:15:56
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-02-92 08:29:42
From Dj Murdoch
To Trevor Carlsen
Subject Re: TP7/BP7 shr/shl bug
TC> The shr/shl bug reported earlier this week applies to any
TC> shift exceeding $10.
TC> Here is a patch supplied to me by Borland Australia. It
TC> involves changing the LONG.ASM file in the RTL and reassembling it.
TC> ; Bug Fix for 32 bit SHR > 16 bits
TC> ; R Morris & J Downs Borland International (Sydney Australia)
TC> SHL EAX, 16
TC> MOV AX, DX
TC> ROR EAX, 16
TC> SHR EAX, CL
TC> ROR EAX, 16
TC> MOV DX, AX
TC> SHR EAX, 16
TC> RETF
Morten Welinder sent me one that looks a bit faster:
@@shr: shl edx,10h ; (dx:ax) shr (cl and 31)
mov dx,ax ; edx now holds operand
shr edx,cl ; Change this to shl for SHL
mov ax,dx
shr edx,10h
ret
Morten Welinder terra@diku.dk
--- Msg V3.2
* Origin: Murdoch's_Point - - (1:249/99.5)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:15:56
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-01-92 23:06:00
From Terry Hughes
To Greg Williams
Subject AsyncPro upgrades
GW>Hi Terry,
GW> Just wondering if the Fossil-based driver/layer for
GW>AsyncPro (apparently circulated on the bonus disk with
GW>AsyncPro) will be sent to me with my upgrade (which is from
GW>version 1.01 to version 1.10)? If not, is there any way
GW>for me to get hold of it, as I'm interested in using a
GW>fossil rather than hardware directly...? Thanks.
Version 1.10 includes the complete new FOSSIL and Digiboard device
layers so you'll have everthing you need once you get 1.10. If
you're in a real hurry, I've also put those device drivers on our BBS
(719-260-9726, FOSSIL.LZH and DIGI14.LZH).
-Terry
___
X QMPro 1.0 41-2187 X TurboPower Software (voice 719-260-9726)
--- Maximus 2.01wb
* Origin: The Programmers Playhouse (1:128/60)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:16:02
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-03-92 20:52:49
From Trevor Carlsen
To Terry Ebaugh
Subject Help!
TE> I'm having problems getting the hang of binary files...
There is nothing wrong with the way you are handling the binary files. What
you are doing wrong is the looping.
TE> for i:=1 to maxplayer do begin <<<<<<-- add this begin
TE> with stats[i] do begin
TE> name[i]:=' ';
TE> handle[i]:=' ';
TE> i:=i+1; {<<<<<<< - WHY?? }
TE> end; { with }
TE> write (playerrec, stats)
TE> end; { for }
TE> close(playerrec);
Never tamper with the value of a loop variable within a for loop. It can be
done but is exceedingly poor practice and the problems it can create is illustra
ed above.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:16:08
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-03-92 21:09:39
From Trevor Carlsen
To Jonas Oberg
Subject PullTTT5
JO> Why doesn't the following code work?
JO> Procedure Help(var chm:char;top,sub:integer); far;
JO> Begin {^^^ Add this }
JO> {$F+} {<<<<<<<<<<< Delete these }
|
JO> {$F-}
JO> End;
OR wrap the procedure in the F+ directives. Do not place them inside the procedu
e.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
* Tossed by SFToss/286 v1.02a on 92/12/05 10:16:08
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Conference 4
Date 12-03-92 20:52:00
From TREVOR CARLSEN
To TERRY EBAUGH
Subject Help!
TE> I'm having problems getting the hang of binary files...
There is nothing wrong with the way you are handling the binary files. What
you are doing wrong is the looping.
TE> for i:=1 to maxplayer do begin <<<<<<-- add this begin
TE> with stats[i] do begin
TE> name[i]:=' ';
TE> handle[i]:=' ';
TE> i:=i+1; {<<<<<<< - WHY?? }
TE> end; { with }
TE> write (playerrec, stats)
TE> end; { for }
TE> close(playerrec);
Never tamper with the value of a loop variable within a for loop. It can be
done but is exceedingly poor practice and the problems it can create is
illustrated above.
TeeCee
--- TC-ED v2.2ß
* Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
--- Mosaic v1.00
* Origin: The Board Walk * (205)281-7733 * HST/DS * (1:375/5) *
* Tossed by SFToss/286 v1.02a on 92/12/05 10:17:21